Web services are significantly more loosely coupled than traditional applications. Web Services are deployed on the behalf of diverse enterprises, and the programmers who implement them are unlikely to collaborate with each other during development. However, the purpose of web-services is to enable business-to-business interactions. As such, one of the goals of web services is for the discovery of new services that allow interaction without requiring programming changes to either service.
The advent of web services that use XML-based message exchanges has spurred many efforts to address issues related to inter-enterprise service electronic commerce interactions. Currently, emerging standards and technologies enable enterprises to describe and advertise their own Web Services and to discover and determine how to interact with services fronted by other businesses. However, these technologies do not address the problem of how to reconcile structural differences between similar types of documents supported by different enterprises. Heretofore, transformations between such documents was a manual process created on a case-by-case basis.
For example, Service A and Service B are services provided by different companies. Suppose that these services want to engage in a shopping cart interaction, and that Service B requires Service A to submit a shipping information document. Service A might be able to provide this information, but in a slightly different format than Service B expects. For example, the shipping document for Service A might list the address first, whereas the document for Service B might list it last. In another case, Service B might call the zip code element “Postal Code,” whereas Service A names it “Zip Code.”
One previous solution of service developers is to create a transformation between the two documents by hand. Manual translation of the XML documents is extremely time consuming, and is unacceptable in a web services environment where information sources frequently change and corresponding applications must quickly evolve to meet that change.
In order to automate the transformation of XML documents (e.g., business documents), there are two fundamental problems that need to be addressed. Previous transformation techniques inadequately transformed between XML documents.
First, potential mappings between elements of two documents must be identified. For example, identifying that “Postal Code” in one document corresponds to “Zip Code” in another document. Previously, in the related field of schema translation between relational databases, the analysis and reconciliation between sets of heterogeneous relational schemas was performed by measuring the similarity of element names, data types, and structures. For example, reasoning about queries are used to create initial mappings between relational schemas. These initial mappings are then refined using data examples. However, because relational schemas are flat, hierarchical XML schemas cannot be related using these previous techniques.
Second, a “plan” for performing the actual transformation of the XML document data schemas must be created and can be related to work done in the area of tree matching. Previous techniques address the change detection problem for ordered and unordered trees, respectively. However, previous tree matching techniques are not applicable to the XML domain. For example, prior art tree matching techniques treat the “label” as a second class citizen. As a result, the cost of relabeling is assumed to be cheaper than that of deleting a node with the old label and inserting a node with the new label. This is an invalid assumption for the XML domain.
Thus, a need exists for decreasing the time, cost, and resources spent on transforming one XML document to another XML document in the web services industry.